//回调函数
function add(x,y,fc){
	var sum = x + y;
	fc(sum);
}
//add方法本身没有返回值，可以通过回调返回
add(1,3,function(sum){
	console.log("sum:"+sum);
});

//////////////////////////////////////////
var arr = [
	{'id':'1','userName':'张三','birthday':'2019-02-09','age':'23'},
	{'id':'2','userName':'李四','birthday':'1998-03-19','age':'33'}
];
// 1.方法用于将一组值，转换为数组
var arr1 = Array.of(1,33,4);  
console.log(arr1);
// 2.数组实例的find方法，
/*用于找出第一个符合条件的数组成员，
它的参数是一个回调函数，所有的数组成员都执行一次该回调函数，
直到找出第一个返回true的成员，然后返回该成员，如果没有符合条件的成员，返回undefined */
var arr2 = [23,4,56,1,788];
var tmp = arr2.find(function(item){
	return item > 3;
});
console.log(tmp);
var tmp2 = arr.find(function(item){
	return item.age == 33;
});
console.log(tmp2);
// 3.findIndex
/*
数组实例的findIndex方法的用法与find方法非常类似，
返回第一个符合条件的数组成员的位置，如果所有成员都不符合条件，则返回-1
*/
var tmpIndex = arr.findIndex(function(item){
	return item.age == 33;
});
console.log(tmpIndex);
// 4. includes 这个方法返回一个布尔值，表示某个数组是否包含给定值
console.log([2,3,111,33].includes(21));
// 5.filter（返回新数组，不会改变原数组,不会对空数组进行检测,只能做筛选,此方法会遍历完数组）
var tmp3 = arr.filter(function(item,index){
	return item.age >2;//满足条件就返回item
});
console.log(tmp3);
// 6. map (返回新数组，不会改变原数组,可以在原有数据基础上做运算)
var tmp4 = arr.map(function(item,index){
	item.age = 888;
	return item;
});
console.log(tmp4);
// 7. forEach():从头至尾遍历数组，为每个元素调用指定函数。改变数组本身
// 函数的参数依次是：数组元素，元素的索引，数组本身
arr.forEach(function(item,index,arrx){
	console.log(item+" index:"+ index);
});